package com.zhihuishu.micro.course.openapi.app.teacher;

import java.util.List;

import com.zhihuishu.micro.course.openapi.app.dto.CategoryOpenDto;
import com.zhihuishu.micro.course.openapi.app.dto.CourseCategoryOpenDto;
import com.zhihuishu.remote.RemoteException;
import com.zhihuishu.remote.RemoteResult;

/**
 * 课程分类远程接口
 * 
 * @author zhanglikun
 * @date 2015年10月22日 下午2:08:03
 */
public interface CourseCategoryOpenService {

    // =================================== 课程分类接口
    // ====================================


    /**
     * 查询课程分类列表
     * 
     * @param courseId
     * @return 
     * @throws RemoteException
     */
    RemoteResult<List<CourseCategoryOpenDto>> queryCategoriesByCourseId(long courseId);

    /**
     * 创建课程分类，只需要分类ID有值即可
     * 
     * @param courseCategory
     * @return
     * @throws RemoteException
     */
    RemoteResult<Integer> createCourseCategory(CourseCategoryOpenDto courseCategory);

    /**
     * 更新课程分类，只需要分类ID有值即可，更新时，三个级别分类不能同时为空(即：至少更新到其中一项)
     * 
     * @param courseCategory
     * @return
     * @throws RemoteException
     */
    RemoteResult<Void> updateCourseCategory(CourseCategoryOpenDto courseCategory);

    /**
     * 
     * @discription 根据课程标签id删除课程分类标签
     * @author jipeng
     * @created 2016年9月19日 下午7:32:28
     * @param id
     * @return
     */
    RemoteResult<Void> deleteCourseCategoryById(Integer id);
    /**
     * @Description:查询课程分类的所有信息
     *  @date:@2016年12月14日上午10:38:41
     *  @author:嵇鹏
     *  @Param:
     *  @retuen:RemoteResult<List<CategoryOpenDto>>
     */
    RemoteResult<List<CategoryOpenDto>> queryAllCatergoryInfo();
    
    

}
